package com.tjx.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.math.BigDecimal;
import java.time.LocalDate;
import lombok.Getter;
import lombok.Setter;

/**
 * <p>
 * 票种类表：用于分类管理票的类型（如成人票、儿童票等），被Ticket表关联
 * </p>
 *
 * @author tjx
 * @since 2025-10-29
 */
@Getter
@Setter
@TableName("ticket_type")
public class TicketType {

    /**
     * 自增主键（数据库内部唯一标识，作为Ticket表的外键关联）
     */
    @TableId(value = "type_id", type = IdType.AUTO)
    private Integer typeId;

    /**
     * 票种类名称（如"成人票"、"儿童票（1.2米以下）"、"老人票"，唯一标识一种票类型）
     */
    @TableField("type_name")
    private String typeName;


    /**
     * 票种类票价（该类型票的固定票价，精确到分，使用BigDecimal避免浮点精度问题）
     */
    @TableField("ticket_type_price")
    private BigDecimal ticketTypePrice;

    /**
     * 票种类描述（说明该类型票的适用人群、限制条件等，如"适用于18-60岁成人"）
     */
    @TableField("type_description")
    private String typeDescription;

    /**
     * 记录创建日期（数据插入时自动生成）
     */
    @TableField("create_date")
    private LocalDate createDate;

    /**
     * 记录更新日期（数据修改时自动更新）
     */
    @TableField("update_date")
    private LocalDate updateDate;

    /**
     * 逻辑删除标识（0=未删除，1=已删除，用于软删除）
     */
    @TableField("is_deleted")
    private Integer isDeleted;

}